home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr47
/
fn32_3.zip
/
FN32ARGV.H
< prev
next >
Wrap
C/C++ Source or Header
|
1993-02-07
|
6KB
|
219 lines
/* fn32argv.h */
#define FN32_LEADING_DOT 0x0001
#define FN32_IS_PATH 0x0002
#define FN32_USES_ESCAPES 0x0004
#define FN32_PCDOS 0x0008
#define FN32_PAT_PATH 0x0010
#define FN32_S_IREAD 0x0100
#define FN32_S_IWRITE 0x0080
#define FN32_S_IRDWR 0x0180
#define FN32_S_IEXEC 0x0040
#define FN32_S_ISDIR 0x4000
#define FN32_READONLY 0x00010000
#define FN32_HIDDEN 0x00020000
#define FN32_SYSTEM 0x00040000
#define FN32_VOLUME 0x00080000
#define FN32_DIRECTORY 0x00100000
#define FN32_ARCHIVE 0x00200000
#define FN32_ALL_FILES 0x00400000
/* UNIX STYLE MODE BITS */
#ifndef __MODEBITS__
#define __MODEBITS__
#define _S_IRWXU 0000700
#define _S_IRUSR 0000400
#define _S_IWUSR 0000200
#define _S_IXUSR 0000100
#define _S_IREAD _S_IRUSR
#define _S_IWRITE _S_IWUSR
#define _S_IEXEC _S_IXUSR
#define _S_ISUID 0004000
#define _S_ISGID 0002000
#define _S_ISVTX 0001000
#define _S_IFMT 0170000
#define _SS_ISDIR 0040000
#define _S_IFDIR 0040000
#define _SS_ISCHR 0020000
#define _S_IFCHR 0020000
#define _S_IFIFO 0010000
#define _SS_ISBLK 0060000
#define _S_IFBLK 0060000
#define _SS_ISREG 0100000
#define _S_IFREG 0100000
#define _SS_ISFIFO 0010000
#define _S_IFLNK 0120000
#define _S_IFSOCK 0140000
#define _S_ISDIR(m) ((m & _S_IFMT) == _S_IFDIR)
#define _S_ISCHR(m) ((m & _S_IFMT) == _S_IFCHR)
#define _S_ISBLK(m) ((m & _S_IFMT) == _S_IFBLK)
#define _S_ISREG(m) ((m & _S_IFMT) == _S_IFREG)
#define _S_ISFIFO(m)((m & _S_IFMT) == _S_IFIFO)
#define _S_ISLNK(m) ((m & _S_IFMT) == _S_IFLNK)
#define _S_ISSOCK(m)((m & _S_IFMT) == _S_IFSOCK)
/* EXTENSIONS FOR DOS FORMAT FILES xmode */
#define _SS_RO 0x0001
#define _SS_HIDE 0x0002
#define _SS_SYST 0x0004
#define _SS_LABL 0x0008
#define _SS_SUBD 0x0010
#define _SS_ARCH 0x0020
#define _S_ISRO(x) (x & _SS_RO)
#define _S_ISHIDE(x) (x & _SS_HIDE)
#define _S_ISSYST(x) (x & _SS_SYST)
#define _S_ISLABL(x) (x & _SS_LABL)
#define _S_ISSUBD(x) (x & _SS_SUBD)
#define _S_ISARCH(x) (x & _SS_ARCH)
/* ADDITIONAL EXTENSIONS FOR NATIVE FORMAT 'CFF' FILES xmode*/
#define _SS_COMPR 0x0040
#define _SS_CRYPT 0x0080
#define _SS_CFF 0x0100
#define _SS_TRUST 0x0200
#define _SS_NOREM 0x0400
#define _SS_FILESYS 0x0800
#define _S_XFMT 0xf000
#define _SS_HASHDIR 0x1000
#define _SS_TREEDIR 0x2000
#define _S_COMPR(x) (x & _SS_COMPR)
#define _S_CRYPT(x) (x & _SS_CRYPT)
#define _S_CFF(x) (x & _SS_CFF)
#define _S_ISTRUST(x) (x & _SS_TRUST)
#define _S_NOREM(x) (x & _SS_NOREM)
#define _S_ISFILESYS(x) (x & _SS_FILESYS)
#define _S_ISHASHDIR(x) ((x & _S_XFMT) == _SS_HASHDIR)
#define _S_ISTREEDIR(x) ((x & _S_XFMT) == _SS_TREEDIR)
#endif /* __MODEBITS__ */
typedef struct _stat
{
unsigned short st_dev; /* logical device */
unsigned short st_ino; /* 0 */
unsigned short st_mode; /* unix style mode bits */
unsigned short st_nlink; /* Number of hard links */
unsigned short st_uid; /* unused */
unsigned short st_gid; /* unused */
unsigned short st_rdev; /* driveno */
long st_size; /* bytes used */
unsigned long st_atime; /* dostime */
unsigned long st_mtime; /* ditto */
unsigned long st_ctime; /* ditto */
unsigned short st_xmode; /* dos attrib + extras */
char st_sname[14]; /* short name if it exists */
} _STAT;
#define _PATH_MAX 64
#define _NAME_MAX 32
#define _DIRENT_MAX 1
#undef NULL
#define NULL ((void *)0)
/* Our version of struct dirent, notice that 'stats' are included,
this eliminates the need to 'stat' a file when using '_readdir' */
struct _dirent
{
_STAT stats;
int d_namlen;
char d_name[_NAME_MAX+2];
};
/* Extended FCB used by FCB PCDOS services */
#pragma pack(1)
typedef struct {
char id;
char pad1[5];
char attr;
char drive;
char name[8];
char ext[3];
short blknum;
short recsize;
long filesize;
short date;
short time;
char pad2[8];
char CurRecnum;
long RelRecnum;
}XFCB;
#pragma pack(2)
/*
THIS IS THE STRUCTURE USED WHEN GETTING A DIRECTORY ENTRY WITH THE
FINDFIRST OR FINDNEXT PCDOS SERVICES
*/
#define DIR_READONLY 0X0001 /* READ-ONLY FILE */
#define DIR_HIDDEN 0X0002 /* HIDDEN FILE */
#define DIR_SYSTEM 0X0004 /* SYSTEM FILE */
#define DIR_VOLUME 0X0008 /* FILE IS VOLUME LABEL */
#define DIR_DIRECTORY 0X0010 /* SUBDIRECTORY */
#define DIR_ARCHIVE 0X0020 /* ARCHIVED FILE */
#define DIR_ALLFILES 0X0040 /* ALL FILES */
#pragma pack(1)
typedef struct
{
char reserved [21]; /* RESERVED FOR DOS IN SCAN. */
char attr; /* FILE ATTRIBUTES */
unsigned short time; /* FILE TIME */
unsigned short date; /* FILE DATE */
long size; /* FILE SIZE */
char name [14]; /* FILE NAME */
} DOSDIR;
/* This is an actual fatfile directory entry */
typedef struct
{
char name[11];
char attr;
unsigned short pad[5];
unsigned short time;
unsigned short date;
unsigned short cluster;
long size;
} FATdir;
#pragma pack(2)
/* This is the structure that 'dirp' points to */
typedef struct _dir
{
struct _dir *fptr;
struct _dir *bptr;
long id;
#define DIRP_ID (0x2ace73f1)
long cur_spot;
int fd;
char varpat[74];
char dirname[512];
DOSDIR dosdir;
struct _dirent dir;
} _DIR;
extern int _far
fn32argv(int *argcp,char ***argvp,_STAT ***statvp,unsigned long flags);
extern _DIR * _far _opendir(char *dirname);
extern struct _dirent * _far _readdir(_DIR *dirp);
extern long _far _telldir(_DIR *dirp);
extern void _far _seekdir(_DIR *dirp, long spot);
extern void _far _rewinddir(_DIR *dirp);
extern int _far _closedir(_DIR *dirp);
extern void _far argv_free(int *argcp, char ***argvp, _STAT ***statvp);
extern int _far fn32_rename(char _far *old, char _far *new);